package emu.grasscutter.server.packet.send;

import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.world.World;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.ScenePlayerInfoNotifyOuterClass.ScenePlayerInfoNotify;
import emu.grasscutter.net.proto.ScenePlayerInfoOuterClass.ScenePlayerInfo;

public class PacketScenePlayerInfoNotify extends BasePacket {

    public PacketScenePlayerInfoNotify(World world) {
        super(PacketOpcodes.ScenePlayerInfoNotify);

        ScenePlayerInfoNotify.Builder proto = ScenePlayerInfoNotify.newBuilder();

        for (int i = 0; i < world.getPlayers().size(); i++) {
            Player p = world.getPlayers().get(i);

            ScenePlayerInfo pInfo =
                    ScenePlayerInfo.newBuilder()
                            .setUid(p.getUid())
                            .setPeerId(p.getPeerId())
                            .setName(p.getNickname())
                            .setSceneId(p.getSceneId())
                            .setOnlinePlayerInfo(p.getOnlinePlayerInfo())
                            .build();

            proto.addPlayerInfoList(pInfo);
        }

        this.setData(proto.build());
    }
}
